package com.wannabuy.mobile.controler;

import java.util.ArrayList;

import com.google.gson.GsonBuilder;
import com.wannabuy.mobile.R;
import com.wannabuy.mobile.cadastro.Fachada;
import com.wannabuy.mobile.model.Comentario;
import com.wannabuy.mobile.model.Comprador;
import com.wannabuy.mobile.model.Grupo;
import com.wannabuy.mobile.model.ItemListView;
import com.wannabuy.mobile.model.ItemMensagem;
import com.wannabuy.mobile.util.AdaptadorItemMensagem;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Bundle;
import android.sax.TextElementListener;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

public class Mensagens extends Activity {
	private Button cmdVoltar;
	private Button cmdNovaMensagem;
	private Comprador compradorLogado;
	private TextView tvUsuarioLogadoMensagem;
	private Grupo grupoAtual;
	private TextView tvProdutoGrupo;
	private ListView lvMensagem;
	ArrayList<Comentario> listaComentario;
	AdaptadorItemMensagem itm;
	ArrayList<ItemMensagem> listaItem;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_tela_mensagens);
		cmdVoltar = (Button) findViewById(R.id.cmdVoltar);
		cmdNovaMensagem = (Button) findViewById(R.id.cmdNovaMensagem);
		tvUsuarioLogadoMensagem = (TextView) findViewById(R.id.tvUsuarioLogadoMensagem);
		tvProdutoGrupo = (TextView) findViewById(R.id.tvProdutoGrupo);
		lvMensagem = (ListView) findViewById(R.id.lvMensagens);
		navegacaoTelaMensagem();
		resgatarUsuarioLogado();
		resgatarGrupoAtual();
		AcessoDados ad = new AcessoDados();
		ad.execute("", "", "");
	}

	private class AcessoDados extends AsyncTask<String, String, String> {

		@Override
		protected String doInBackground(String... params) {
			litarMensagemGrupo();
			return null;
		}

	}

	private void litarMensagemGrupo() {

		listaComentario = Fachada.getInstancia().listarComentario(grupoAtual);
		mostrarListadeMensagem();
	}


	private void mostrarListadeMensagem(){
		listaItem = new ArrayList<ItemMensagem>();
		  for(Comentario c: listaComentario){
			  ItemMensagem im = new ItemMensagem();
			  im.setData(c.getDataComentario().toString());
			  im.setTexto(c.getComentario());
			  listaItem.add(im);
		  }
		  
		  itm = new AdaptadorItemMensagem(this, listaItem);
		  lvMensagem.setAdapter(itm);
		  lvMensagem.setCacheColorHint(Color.TRANSPARENT);
	}
	
	private void resgatarGrupoAtual() {

		String grupoString = getIntent().getExtras().getString("grupo");
		GsonBuilder conversor = new GsonBuilder();
		conversor.setDateFormat("dd/MM/yyy");
		grupoAtual = conversor.create().fromJson(grupoString, Grupo.class);
		tvProdutoGrupo.setText(grupoAtual.getProduto());

	}

	private void resgatarUsuarioLogado() {

		String usuarioString = getIntent().getExtras().getString("usuario");
		GsonBuilder conversor = new GsonBuilder();
		conversor.setDateFormat("dd/MM/yyy");
		compradorLogado = conversor.create().fromJson(usuarioString,
				Comprador.class);
		tvUsuarioLogadoMensagem.setText(compradorLogado.getNome());
	}

	public void navegacaoTelaMensagem() {
		cmdVoltar.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent intent = new Intent(Mensagens.this,
						VisualizarGrupos.class);
				Bundle voltarTelaVisualizarGrupo = new Bundle();
				GsonBuilder conversor = new GsonBuilder();
				conversor.setDateFormat("dd/MM/yyyy");
				String usuarioLogadoString = conversor.create().toJson(
						compradorLogado);
				String grupoAtualString = grupoAtual.getProduto();
				voltarTelaVisualizarGrupo.putString("grupoSelecionado",
						grupoAtualString);
				voltarTelaVisualizarGrupo.putString("usuarioLogado",
						usuarioLogadoString);
				intent.putExtras(voltarTelaVisualizarGrupo);
				startActivity(intent);
			}
		});

		cmdNovaMensagem.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {

			}
		});
	}

}
